// pages/login/index.js

import {
  loginRequest
} from '../../api/main'

Page({

  /**
   *※※※ 页面的初始数据
   */
  data: {
      stuId:'', //学号
      password:'',//密码
      saveCount:true, //是否记住账号，默认选中
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.initAccount()
  },
  //※※※初始化数据
  initAccount(){
  const accountCache = wx.getStorageSync('account')
  if(accountCache){
    this.setData({
    ...accountCache
  })
  //源对象​：accountCache（从本地存储获取的数据）
  // ​目标对象​：this.data（页面的数据对象）
  // ​操作结果​：将 accountCache 的属性合并到 this.data 中
  //   从本地存储获取数据：
  // const accountCache = wx.getStorageSync('account')
  // 假设 accountCache 是 { stuId: '123', password: 'abc' }
  // 执行解构赋值：
  // this.setData({
  //   ...accountCache
  // })
  // 相当于：
  // this.setData({
  //   stuId: '123',
  //   password: 'abc'
  // })
  // 最终效果：
  // 不是返回新对象，而是更新了页面的 data 对象
  // 更新后的 this.data 会是：
  // javascript
  // {
  //   stuId: '123',      // 来自accountCache
  //   password: 'abc',   // 来自accountCache
  //   saveCount: true    // 原有的值保持不变
  // }
  }
},




  //※※※登录
  login(){
    const that = this
    const postData ={
      stuId: that.data.stuId,
      password: that.data.password
    };
    //未登陆成功之前显示登陆中
    wx.showLoading({
      title: '登陆中...',
    });

    loginRequest(postData)
    .then( 
      res => {
      // 箭头函数解决：
      // success: (res) => { }
      // 这里的this仍然指向Page实例
      // 在这个回调函数中，this不再指向Page实例
      // 所以使用之前保存的that来访问Page的数据和方法
      wx.hideLoading()
      if(res.data.code == -1) {
          wx.showToast({
              title: res.data.msg,
              icon: 'none'
          })
          return
      }
      //※※※如果选中储存数据
      if (res.saveCount) {
          wx.setStorageSync('account', postData)
      }
      wx.setStorageSync('token', res.data.cookie)
      //※※※判断是否选中账号密码
      if (res.saveCount) {
          wx.setStorageSync('account', postData)
      } else {
          wx.removeStorageSync('account')
      }
      wx.showToast({
          title: '登录成功',
          icon: 'none'
      })*
      setTimeout(() => {
          wx.redirectTo({
              url: '/pages/index/index',
          })
      }, 1500);
      }
    );
  },
  


  switchStatus (){
    this.setData({
      saveCount:!this.data.saveCount,
    })
  }


})